#!/usr/bin/python
# -*-coding:UTF-8 -*-

# ========================
# @Time  : 2021/1/25
# @Author: Sunny
# ========================

a=1
"""
可迭代对象：能够使用for循环遍历的，都叫可迭代对象 如：str() list() tuple() dict()
    迭代对象内部实现了迭代协议(对象定义了__iter__这个方法)
    
迭代器: 迭代器也是可迭代对象的一种
    迭代器不仅仅实现了__iter__方法，还实现了__next__方法
    1.所有的迭代对象都可以转换为迭代器: 迭代器 = iter(可迭代对象)
    
    2.迭代器可以使用内置函数next进行迭代
    3.迭代器的作用：在大批量取存储数据的时候，迭代器可以帮我们节约内存
        eg ：当存储一个列表，列表数据有10万，那么内存会很大，但是生成迭代器，打印出迭代器只是一个对象，
            取数时只需通过next()依次取数即可


生成器：它是一种特殊的迭代器(生成器内部保存的是生成数据的规则规律)
       生成器比迭代器更高级，生成器可以用next()

创建生成器的2种方式：
1.生成器表达式
2.生成器函数:只要函数中使用了yield关键字，那么这个函数就是一个生成器函数

生成器的常用函数
1.next()
2.生成器send方法可以和生成器内部进行数据交互
3.close() 关闭生辰器
4.throw() 往生成器内部发送一个异常
"""

